package cn.bonoon.kernel.annotations.condition;

import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import cn.bonoon.kernel.util.Opt;

/**
 * <pre>
 * 查询条件操作符的指定，如："=","<",">"等
 * 
 * 如果需要与其它条件进行条件比较的，需要使用注解{@link ConditionWith @ConditionWith}
 * 
 * 对查询字段的指定使用{@link ConditionField @ConditionField} 
 * </pre>
 * @author jackson
 *
 */
@Target(FIELD)
@Retention(RUNTIME)
public @interface ConditionOpt {

	Opt value() default Opt.NONE;

	/**
	 * 
	 * <pre>
	 * 是否使用isNull语句。
	 * 如果isNull = true，该字段值为null时，则全使用 propertyName is null的语句；
	 * 否则将会忽略该查询语句。
	 * 如果值为基本类型，当isNull = true时则表示可以使用空值，即不限制基本数据类型的使用，
	 * 否则只有当value > 0时才会生成条件
	 * </pre>
	 * 
	 * @return
	 */
	boolean isNull() default false;
}
